In PDF files, information is added at the beginning of the PDF file that tells Acrobat where every object (file offsets for page, text, bitmap, fonts, and so on) is located inside the PDF file. The only way to gather this information is to have the entire file stored in memory before writing it out.
In Documaker, because of the volume of transactions that may be processed in a batch, only a single transaction is loaded into memory at a time. The print driver is then called. That transaction is processed and then the next transaction is loaded into memory. The PDF Print Driver only has information about the current transaction in memory, not all of the transactions that comprise a batch.
If you do not split transactions into separate PDF files, you end up with multiple PDF files concatenated into a single file, but the beginning of the file only contains information (file offsets for page, text, bitmap, font, and so on) about the last transaction that was processed. Since the last transaction can look a lot like the first PDF file, Acrobat may be fooled into displaying the first transaction. It will not, however, display the other transactions included in the file.
For PDF output, the GenPrint program should not write all the transactions into one file. Each transaction should be created as a separate PDF file by using the MultiFilePrint callback function. See the Output Management Guide (Previously known as Printers Reference) for more information. You must configure your FSISYS.INI file as shown here:
< Print >
CallBackFunc = MultiFilePrint
MultiFileLog = {full path and file name of the log file{optional}}
< RunMode >
DownloadFAP = Yes
LoadFAPBitmap = Yes
CheckNextRecip = No
< Printer >
PrtType = PDF
< PrtType:PDF >
Device = c:\test.pdf
DownloadFonts = No, Disabled
LanguageLevel = Level2
Module = PDFW32
PageNumbers = Yes
PrintFunc = PDFPrint
SendOverlays = No, Disabled
SendColor = Yes, Enabled
< Printer1 >
Port = ..\DMS1\DATA\AAAA####.PDF
Where AAAA is the four-character print file description and #### is a four-character sequence number.
Note | The CheckNextRecip option enables recipient batch records for the same transaction that occur in sequence in a recipient batch file to be queued and printed in one call to the print driver. This enables the transaction to be loaded only once and then each recipient is processed in turn inside the print driver. For instance, you would set this option to No when you want a separate file for each recipient when using the PDF, XML, HTML, and RTF print drivers. With the option set to Yes, all the recipients for the same transaction in the same batch are written to a single output file. If you set this option to Yes, some environments may see a marginal performance benefit. If you prefer to have this option enabled and have all recipients printed together, be sure you add both the option and the Yes setting into your INI file. < RunMode > Otherwise, the system default (No) will govern the GenPrint program’s behavior. With the release of version 11.2, the default for this option is No. In prior releases, the default was Yes. |
© Copyright 2018, Oracle and/or its affiliates. All rights reserved. Legal notices.